home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / KBan 2.0 / KBANSRC.LZH / SRC / PROG / CMD / PLPIN.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-17  |  1.7 KB  |  71 lines

  1. /*
  2.  * the class PLACE_PIN
  3.  * Copyright (C) 1996, 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
  4.  */
  5.  
  6. #include "../stdafx.h"
  7.  
  8. #include "../common/bool.h"
  9.  
  10. #include "plpin.h"
  11.  
  12. void PLACE_PIN::PLACE_PIN_MOUSE_CURSOR::draw_cursor_core(KBAN_DRAW& draw, const PIN_ELEMENT& target)
  13. {
  14.   draw.draw_primitive_pin_cursor(target);
  15. }
  16.  
  17. STAGE* PLACE_PIN::init_new(KBAN_INFO& info, KBAN_DRAW& draw)
  18. {
  19.   return new STAGE_PLACE_PIN;
  20. }
  21.  
  22. const char* PLACE_PIN::get_name(void)
  23. {
  24.   return "Place:Pin";
  25. }
  26.  
  27. STAGE* PLACE_PIN::STAGE_PLACE_PIN::redraw(KBAN_INFO& info, KBAN_DRAW& draw)
  28. {
  29.   m_mcur.redraw_cursor(draw);
  30.   return this;
  31. }
  32.  
  33. STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_move(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  34. {
  35.   XY ac;
  36.   info.grid().xy_pc2ac(pc, ac);
  37.   PIN_ELEMENT current(ac, info.apt_pin());
  38.   m_mcur.draw_cursor(draw, current);
  39.   return this;
  40. }
  41.  
  42. STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_left_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  43. {
  44.   m_mcur.erase_cursor(draw);
  45.  
  46.   XY ac;
  47.   info.grid().xy_pc2ac(pc, ac);
  48.  
  49.   PRIMITIVE& primitive = info.kban_data().primitive();
  50.   uint layer = info.active_layer().get_pin_layer();
  51.   PIN_LIST& pin_list = primitive.layer(layer).pin_list();
  52.   PIN_ELEMENT pin_element(ac, info.apt_pin());
  53.   pin_list.push_back(pin_element);
  54.   info.SetModifiedFlag();
  55.   info.new_state().set(true);
  56.   info.new_state_str() = "Place Pin";
  57.  
  58.   draw.draw_primitive_pin(pin_element, layer);
  59.   return this;
  60. }
  61.  
  62. STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_right_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
  63. {
  64.   return NULL;
  65. }
  66.  
  67. void PLACE_PIN::STAGE_PLACE_PIN::end(KBAN_INFO& info, KBAN_DRAW& draw)
  68. {
  69.   m_mcur.erase_cursor(draw);
  70. }
  71.